﻿using System.Collections.Generic;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Matrix.Common;

namespace Matrix.GUI.Tests
{
   [TestClass]
   public class TC_MG04
   {
      [TestMethod]
      public void TestMethod1()
      {
         MainWindow window = new MainWindow();
         IMatrixManagers matrix = window.DataContext as IMatrixManagers;

         TestMatrix(matrix.FirstMatrix);
         TestMatrix(matrix.SecondMatrix);
      }

      public void TestMatrix(IMatrix matrix)
      {
         List<int> badValues = new List<int>();
         badValues.Add(int.MinValue);
         badValues.Add(int.MaxValue);
         badValues.Add(int.MinValue);
         badValues.Add(0);
         badValues.Add(int.MaxValue);
         badValues.Add(9);
         badValues.Add(-1);

         foreach (var value in badValues)
         {
            matrix.ColumnSize = value;
            Assert.IsTrue(matrix.ColumnSize > 0 && matrix.ColumnSize <= 8);
            matrix.RowSize = value;
            Assert.IsTrue(matrix.RowSize > 0 && matrix.RowSize <= 8);
         }

         List<int> goodValues = new List<int>();
         goodValues.Add(1);
         goodValues.Add(8);

         foreach (var goodValue in goodValues)
         {
            matrix.ColumnSize = goodValue;
            Assert.IsTrue(matrix.ColumnSize > 0 && matrix.ColumnSize <= 8);
            matrix.RowSize = goodValue;
            Assert.IsTrue(matrix.RowSize > 0 && matrix.RowSize <= 8);
         }
         
      }
   }
}
